package com.erp.shop.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.web.oldDomain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 卖家店铺Ae授权信息业务对象 erp_seller_store_empower_extend
 *
 * @author erp
 * @date 2023-04-20
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class ErpSellerStoreEmpowerExtendBo extends BaseEntity {

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * The expiring time of the access token, in seconds
     */
    @NotNull(message = "The expiring time of the access token, in seconds不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long expiresIn;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sellerId;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userId;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String userNick;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String havanaId;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accountPlatform;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accessToken;

    /**
     * User account(login user)
     */
    @NotBlank(message = "User account(login user)不能为空", groups = { AddGroup.class, EditGroup.class })
    private String account;

    /**
     * Refresh token, used to refresh the token when “refresh_expires_in”>0.
     */
    @NotBlank(message = "Refresh token, used to refresh the token when “refresh_expires_in”>0.不能为空", groups = { AddGroup.class, EditGroup.class })
    private String refreshToken;

    /**
     * The expiring time of th refresh token
     */
    @NotNull(message = "The expiring time of th refresh token不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long refreshExpiresIn;

    /**
     * 过期时间
     */
    @NotNull(message = "过期时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long expireTime;

    /**
     * 刷新过期时间
     */
    @NotNull(message = "刷新过期时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long refreshTokenValidTime;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sp;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String locale;

    /**
     * 
     */
    @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
    private String accountId;

    private Integer type;

    /**
     * 当前店铺商品数量(在线）
     */
    private String onlineStoreProductNumber;
    /**
     * 当前店铺商品数量(审核中）
     */
    private String authStoreProductNumber;
    /**
     * 店铺最大商品数量限制。 发品前请做好前置校验 ，商家在线和审核中的商品数量加合要小于店铺最大商品数量限制。 limit_store_product_number > online_store_product_number + auth_store_product_number
     */
    private String limitStoreProductNumber;
    /**
     * 卖家所属国家
     */
    private String country;
    /**
     * 卖家可以使用的报价币种
     */
    private String quotationCurrency;

    /**
     * 乐观锁
     */
    @NotBlank(message = "乐观锁不能为空", groups = { AddGroup.class, EditGroup.class })
    private String revision;


}
